package com.trip.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.trip.common.constant.RegexPattern;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.trip.common.po.CarInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Email;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 司机管理对象 driver
 *
 * @author hr
 * @since 2024-09-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("driver")
public class Driver  implements Serializable{
    private static final long serialVersionUID = 1L;

    /** 司机id */
    @TableId(value = "driver_id" ,type = IdType.AUTO)
    private Long driverId;
    /**
     * 用户id
     */
    private Long userId;

    /**
     * 启用车辆
     */
    private CarInfo carId;

    /** 司机账号 */
    @Length(min=11, max=11,message = "账号11位")
    private String userName;

    /** 司机昵称 */
    private String nickName;

    /** 密码 */
    @Pattern(regexp = RegexPattern.PASSWORD_REGEX,message = "密码8~32位的字母、数字、下划线")
    private String password;

    /** 司机类型（00系统用户） */
    private String userType;

    /** 司机邮箱 */
    @Email(message = "不是邮箱")
    private String email;

    /** 手机号码 */
    @Pattern(regexp = RegexPattern.PHONE_REGEX,message = "手机号格式不对")
    private String phoneNumber;

    /** 司机性别（0男 1女 2未知） */
    private String sex;

    /** 头像地址 */
    private String avatar;

    /** 驾照照片路径 */
    private String drivingLicenseImage;

    /** 驾驶证号码 */
    private String drivingLicenseNumber;

    /** 删除标志（0代表存在 2代表删除） */
    @TableLogic
    private String delFlag;

    /** 状态（0正常 1停用） */
    private String status;

    /** 司机钱包余额 */
    private BigDecimal money;
}


